
import { _decorator, Component, Label, Node } from 'cc';
import { TriggerManager } from './TriggerManager';
import DataManager from '../Runtime/DataManager';
import { ItemStatusEnum, ItemTypeEnum, TriggerStatusEnum, TriggerTypeEnum } from '../../Enum';
const { ccclass, property } = _decorator;


@ccclass('GrandmoTriggerManager')
export class GrandmoTriggerManager extends TriggerManager {
    type = TriggerTypeEnum.MailBox;

    @property(Node)
    dialogNode: Node = null;

    @property(Label)
    label: Label = null;

    private readonly pendingDiaLogList = [
        '我年纪大了，很多事情想不起来了。',
        '你是谁？算了，我也不在乎你是谁。你能帮我找到信箱的钥匙吗？',
        '老头子说最近会给我寄船票过来，叫我和他一起出去看看。虽然我没有什么兴趣...',
        '他折腾了一辈子，不是躲在楼上捣鼓什么时间机器，就是出海找点什么东西。',
        '这些古怪的电视节目真没有什么意思。',
        '老头子说这个岛上有很多秘密，其实我知道，不过是岛上的日子太孤独，他找点事情做罢了。',
        '人嘛，谁没有年轻过。年轻的时候...算了，不说这些往事了。',
        '老了才明白，万物静默如迷。'
    ]

    private readonly resolvedDiaLogList = [
        '没想到老头子的船票寄过来了，谢谢你。'
    ]

    render() {
        super.render();
        if (DataManager.Instance.grandmaDialogIndex === -1) {
            this.dialogNode.active = false;
            return;
        }

        this.dialogNode.active = true;
        if (DataManager.Instance.grandMaStatus === TriggerStatusEnum.Pengind) {
            this.label.string = this.pendingDiaLogList[DataManager.Instance.grandmaDialogIndex]
        } else if (DataManager.Instance.grandMaStatus === TriggerStatusEnum.Resolved) {
            this.label.string = this.resolvedDiaLogList[DataManager.Instance.grandmaDialogIndex]
        }

    }

    handleTrigger() {
        console.log("我被触发了")
        if (DataManager.Instance.grandMaStatus === TriggerStatusEnum.Pengind) {
            if (DataManager.Instance.currItemType === ItemTypeEnum.MAIL && DataManager.Instance.isSelect) {
                //把当前选项设置为null
                DataManager.Instance.currItemType = null;
                //把选择状态设置为false
                DataManager.Instance.isSelect = false;
                DataManager.Instance.items.find(i => i.type === ItemTypeEnum.MAIL).status = ItemStatusEnum.DISABLED;
                DataManager.Instance.items = [...DataManager.Instance.items];
                DataManager.Instance.grandMaStatus = TriggerStatusEnum.Resolved
                DataManager.Instance.grandmaDialogIndex = 0;
            } else {
                // 在Pending状态下，处理pending dialog的循环显示
                if (DataManager.Instance.grandmaDialogIndex === -1) {
                    // 第一次触发，初始化索引为0
                    DataManager.Instance.grandmaDialogIndex = 0;
                } else if (DataManager.Instance.grandmaDialogIndex >= this.pendingDiaLogList.length - 1) {
                    // 已经显示完所有pending dialog，隐藏dialog
                    DataManager.Instance.grandmaDialogIndex = -1;
                } else {
                    // 显示下一个pending dialog
                    DataManager.Instance.grandmaDialogIndex++;
                }
            }
        } else {
            // Resolved状态下的dialog循环显示
            if (DataManager.Instance.grandmaDialogIndex >= this.resolvedDiaLogList.length - 1) {
                DataManager.Instance.grandmaDialogIndex = -1;
            } else {
                DataManager.Instance.grandmaDialogIndex++;
            }

        }

    }
}

